/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 文件名：	IOptionalClassInfo.java
 * 模块说明：	
 * 修改历史：
 * 2007-3-15 - lxm - 创建。
 */
package com.hd123.rumba.option;

import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.runtime.IPersistent;

/**
 * 选项类信息 | 实体 | 接口类
 * <p>
 * 
 * BK = optionalClassName<br>
 * 设计用于保存包含有选项的类的注册信息。属于系统数据，由程序员填写。
 * <p>
 * 
 * 并非所有的拥有选项的类都需要被注册，即被持久化。在默认情况下选项类的个性化级别为VALUE_INDIVIDUATION_DOMAIN。
 * 
 * @author lxm
 * 
 */
public interface IOptionalClassInfo extends IPersistent {

  /** 属性：指向的包含选项类的类名。 */
  public String getOptionalClassName() throws BusinessException;

  public void setOptionalClassName(String optionalClassName) throws BusinessException;

  /**
   * 属性：个性化设置级别。<br>
   * 取值参见常量COptionalClassInfo.VALUE_INDIVIDUATION_*，默认为COptionalClassInfo.VALUE_INDIVIDUATION_DOMAIN。
   */
  public Integer getIndividuation() throws BusinessException;

  public void setIndividuation(Integer individuation) throws BusinessException;

  /**
   * 属性：是否默认为锁定状态。表示是否允许修改个性化设置。<br>
   * 仅当允许个性化设置时有效。
   * 
   * @see #getIndividuation
   */
  public Boolean getLocked() throws BusinessException;

  public void setLocked(Boolean locked) throws BusinessException;

  /**
   * 属性：是否默认为启用状态。表示是否允许使用个性化设置。<br>
   * 仅当允许个性化设置时有效。
   * 
   * @see #getIndividuation
   */
  public Boolean getOnline() throws BusinessException;

  public void setOnline(Boolean online) throws BusinessException;

}
